import axios from 'axios'//引入axios
import nprogress from 'nprogress';//引入进度条
import 'nprogress/nprogress.css';
import store from '@/store';
const requests = axios.create({
    //配置对象
    //基本路径，发送请求的时候，路径当中都会加上/api
    baseURL: '/api',
    //请求超时的时间为5s
    timeout: 5000
})
// 添加请求拦截器
requests.interceptors.request.use((config) => {
    //通过上行请求的请求头，把用户临时身份带给服务器
    //请求头添加的属性名字不能瞎写，因为已经和后台人员商量好了
    //如果不叫做userTempid字段，服务器获取不到
    //config配置对象，这里面有请求头
    //config，请求拦截器的一个配置对象
    if (store.state.shopCart.userTempId) {
        config.headers.userTempId = store.state.shopCart.userTempId;
    }
    //用户登录成功的token,添加到请求头,获取用户信息
    if (store.state.user.token) {
        config.headers.token = store.state.user.token
    }
    // 在发送请求之前做些什么
    nprogress.start()//进度条开始
    return config;
}, (error) => {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
requests.interceptors.response.use((response) => {
    // 对响应数据做点什么
    nprogress.done()//进度条结束
    return response.data;
}, (error) => {
    // 对响应错误做点什么
    return Promise.reject(error);
});
//对外暴露
export default requests